package com.itlong.cloud.commons.service;

import com.itlong.cloud.POJO.PO.DeviceBusinessElevatorChangeLogPO;

import java.io.IOException;
import java.util.List;

/**
 * <desc>
 *      云电梯响应硬件结果业务处理接口
 * </desc>
 *
 * @createDate 2018/04/03
 */
public interface IPushCloudElevatorChangeLogService {
    /**
     * <desc>
     *      任务调度执行同步业务指令至响应硬件结果表
     * </desc>
     *
     * @author Juguang.S
     * @createDate 2018/04/03
     */
    void timeTaskPushCloudElevator() throws Exception;

    /**
     * <desc>
     *      处理推送的云电梯楼层信息
     * </desc>
     *
     * @param business 业务数据
     * @author Qiang.S
     * @createDate 2019/07/11
     */
    void setPushDeviceFloorInfo(List<DeviceBusinessElevatorChangeLogPO> business) throws IOException;

    /**
     * <desc>
     *      全量更新/云电梯业务服务器地址变更
     * </desc>
     *
     * @param projectId 项目id
     * @author Qiang.S
     * @createDate 2019/07/11
     */
    void updateFull(String projectId,Integer type,String params);

    /**
     * <desc>
     *      处理推送硬件响应项目信息
     * </desc>
     *
     * @param business 业务数据
     * @author Qiang.S
     * @createDate 2019/07/11
     */
    void setPushProject(List<DeviceBusinessElevatorChangeLogPO> business);

    /**
     * <desc>
     *      处理推送硬件响应设备信息
     * </desc>
     *
     * @param business 业务数据
     * @author Qiang.S
     * @createDate 2019/07/11
     */
    void setPushDevice(List<DeviceBusinessElevatorChangeLogPO> business);

    /**
     * <desc>
     *      处理推送设备响应固定密码信息
     * </desc>
     *
     * @param business 业务数据
     * @author Qiang.S
     * @createDate 2019/07/11
     */
    void setPushFixedPassword(List<DeviceBusinessElevatorChangeLogPO> business);

    /**
     * <desc>
     *      处理推送设备项目信息变更
     * </desc>
     *
     * @param business 业务数据
     * @author Qiang.S
     * @createDate 2019/07/11
     */
    void setPushDeviceProjectInfo(List<DeviceBusinessElevatorChangeLogPO> business);

    /**
     * <desc>
     *      处理推送设备项目信息变更
     * </desc>
     *
     * @param business 业务数据
     * @author Qiang.S
     * @createDate 2019/07/11
     */
    void setPushUserProject(List<DeviceBusinessElevatorChangeLogPO> business, Integer type);

    /**
     * <desc>
     *      处理推送电梯黑名单信息变更
     * </desc>
     *
     * @param business
     * @author Jiaqi.X
     * @createDate 2019/10/15
     */
    void setBlackList(List<DeviceBusinessElevatorChangeLogPO> business) throws IOException;

    /**
     * <desc>
     *      处理推送用户临时权限
     * </desc>
     *
     * @param business 业务数据
     * @author Jiaqi.X
     * @createDate 2019/09/14
     */
    void setPushTempAuth(List<DeviceBusinessElevatorChangeLogPO> business) throws IOException;
}
